package com.conselheiro.web.entidade;

import java.util.List;

import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

/**
 * Classe que representa um relato de alguma história pelo usuário. É possível
 * criar uma cadeia de relatos através do atributo <code>pai</code> para possibilitar 
 * uma evolução histórica do relato inicial.
 * 
 * @author Diogo Vinicius
 * 
 */

@Entity
@DiscriminatorValue("R")
public class Relato extends Post {
	private static final long serialVersionUID = -6737864523457025559L;
	@OneToMany(mappedBy = "relato")
	private List<Conselho> conselhos;
	@ManyToMany(mappedBy = "relatosSeguidos")
	private List<Usuario> usuariosSeguindo;
	@OneToOne
	private Relato pai;

	public Relato getPai() {
		return pai;
	}

	public void setPai(Relato pai) {
		this.pai = pai;
	}

	public List<Conselho> getConselhos() {
		return conselhos;
	}

	public void setConselhos(List<Conselho> conselhos) {
		this.conselhos = conselhos;
	}

	public List<Usuario> getUsuariosSeguindo() {
		return usuariosSeguindo;
	}

	public void setUsuariosSeguindo(List<Usuario> usuariosSeguindo) {
		this.usuariosSeguindo = usuariosSeguindo;
	}

}
